/*!
 * 文件名称： bsp_beep.c
 * 描    述： 蜂鸣器驱动文件
 * 版本：     2023-12-03, V1.0
*/

/*
* GD32F303东方红开发板V1.0
* 淘宝商城：   https://juwo.taobao.com
* 技术交流：   https://www.gd32bbs.com/ask/
* 视频学习：   https://space.bilibili.com/475462605
* 微信公众号： gd32bbs
* Copyright    苏州聚沃电子科技有限公司
* 版权所有，盗版必究。
*/

#include "driver_timer.h"
#include "bsp_beep.h"

/* 定义注册蜂鸣器对应PWM通道 */
TIMER_CH_DEF(PWM_BEEP,TIMER13,0,TIMER_CH_PWM_LOW,F,9,AF_PP,GPIO_TIMER13_REMAP);

/*!
* 说明     蜂鸣器初始化
* 输入[1]  counter_frequency 计数器频率
* 输入[2]  period 周期值
* 返回值   无
*/
void bsp_beep_init(uint32_t counter_frequency,uint16_t period)
{
    driver_timer_channel_init(&PWM_BEEP,counter_frequency,period);
}

/*!
* 说明     蜂鸣器设置
* 输入[1]  period 周期指（频率）
* 输入[2]  duty_value 占空比（0--100）
* 返回值   无
*/
void buzzer_set(uint16_t period, uint16_t duty_value)
{
    driver_timer_pwm_period_duty_set(&PWM_BEEP,period,duty_value);
}

/*!
* 说明     打开蜂鸣器
* 输入[1]  无
* 返回值   无
*/
void buzzer_on(void)
{
    driver_timer_pwm_on(&PWM_BEEP);
}

/*!
* 说明     关闭蜂鸣器
* 输入[1]  无
* 返回值   无
*/
void buzzer_off(void)
{
    driver_timer_pwm_off(&PWM_BEEP);
}


